The DNS (Domain Name System) is an Internet service that translates domain names into IP (Internet Protocol) addresses. Since domain names are alphabetic, whereas IP addresses are numerical, they are easier to remember. However, communication within the Internet is, in fact, based on IP addresses. Therefore, each time an Internet user specifies a domain name, a DNS service needs to translate the name into a corresponding IP address. For example, the domain name “www.example.com” might illustratively translate into an IP address “198.105.232.4”. This translation process is initiated by what is referred to as a DNS request, and results in a response containing an appropriate IP address.
As people get higher speed connections to the Internet, DNS lookup time becomes a larger fraction of the total. This is because DNS request and response packets are small, and little of the time required to process a DNS request is spent in data transfer to the home computer—rather, most of the time is spent in network delays or DNS server response time. Consequently, for example, DNS lookup time is almost unchanged between systems employing a slow 14.4 kilobit/second modem and those employing a fast 300 kilobit/second DSL (Digital Subscriber Line) connection. In fact, DNS lookup time can even become dominant under certain conditions.
It is well known that network performance can in general be improved with the use of various caching techniques. Clearly, network caches can be used to reduce client latency when a requested object is already in the cache. For example, one commonly used technique involves the caching of web pages, so that repetitive access to a given web page does not require a complete re-fetch of the page. Moreover, it has been suggested that such web page caching may also be advantageously based on a “predictive” model, in which pre-fetching of web pages (i.e., fetching a page prior to a specific user request for the information) is performed. Typically, such pre-fetching will be advantageously based on the identification of web pages which are likely to be requested in the near future. Such identification of likely future web page requests may, for example, be based on web links which happen to be included on a given web page which has just been accessed. Alternatively, such a predictive model (i.e., the identification of likely future web page requests) may be based on a statistical analysis involving a correlation between past web page requests.
In addition, it has been suggested that predictive caching of DNS requests be performed as well. Unfortunately, DNS caches normally have no inherently useful predictive information such as is available on web pages (e.g., web links). But in “Use of Cooperation Across Semantic Boundaries to Enhance Network Object Caches,” A. S. Hughes, PhD Dissertation Proposal, Computer Science Department, University of Southern California, May 2000, it was suggested that cache cooperation can be extended from a single domain to include caches from more than one domain. For example, cross-domain cooperation between a Web cache and a DNS cache may be implemented such that the available predictive information of web pages can be used to pre-fetch DNS requests.